专利摘要:
The invention relates to systems and methods for seamless migration from existing software to new software (104). In one example, a method may include retrieving existing software usage activity information from at least one computing device and identifying settings that need to migrate from existing software. The method may further comprise converting, based on an internal database containing information about the metadata of the new software (104), the settings of the existing software into the corresponding settings of the new software and establishing, based on the usage activity information, a plan of migration indicative of a sequence of activities for installing new software (104) and removing existing software in such a way that a quality of service associated with access to the plurality of functionalities on at least one IT device does not fall below of a quality of service threshold value. The method may also include running the migration plan.
公开号:CH717528A2
申请号:CH00651/21
申请日:2021-06-04
公开日:2021-12-15
发明作者:Kulaga Andrey;Beloussov Serguei;Protasov Stanislav;Grebennikov Nikolay
申请人:Acronis Int Gmbh;
IPC主号:
专利说明:

TECHNICAL FIELD
The present disclosure relates to the field of software migration and, more specifically, to systems and methods for seamless migration from existing software to new software.
STATE OF ART
Managed service providers (MSPs) are companies that offer a variety of managed computer (IT) services to other companies. Today, MSPs mostly provide their services remotely over a network. One of the challenges MSPs face is switching between software provided by different vendors. For example, an MSP may use antivirus software provided by a first manufacturer. If different antivirus software is brought to market by a second manufacturer and the different antivirus software works more efficiently or is cheaper than the antivirus software normally used, the MSP may be interested in changing. However, this requires a lengthy migration that involves customization to a customer's needs, customization for the hardware on which the software runs, and customization to maintain the functionality of the data stored and processed. Because migration is time-consuming, unreliable, increases the total cost of ownership (TCO) of new software, and causes a decrease in quality of service (during change), MSPs are often reluctant to upgrade their infrastructure.
SUMMARY
In order to simplify the upgrade process, examples of methods and systems for seamless data migration from existing software to new software are disclosed herein.
In one example, a method may comprise receiving a command to migrate from existing software to new software on at least one computer device, wherein the existing software and the new software share a plurality of functionality. Upon receiving the command, the method may include retrieving existing software usage activity information from at least one computing device and identifying the settings that need to migrate from existing software. The method may also include converting, based on an internal database containing metadata information for the new software, the settings of the existing software to the corresponding settings of the new software. The method may further comprise establishing, based on the usage activity information, a migration plan indicative of a sequence of tasks for installing new software and removing existing software in such a way that the quality of service associated with the access to the plurality of functionalities on at least one computer device does not fall below a quality of service threshold. The method may also include sequencing tasks by installing new software, implementing corresponding settings, and removing existing software.
In some examples, the method may include submitting the migration plan to an administrator of at least one computing device, in which the sequence of tasks is performed after receiving the approval of the migration plan by the administrator.
In some examples, existing software and new software are antivirus software and identifying the existing software settings that need to migrate further includes identifying at least one of the following: (1) a virus scanner, (2) actions to be performed for each type of virus and malware, (3) directory of exceptions that should not be scanned, (4) authorized users.
In some examples, performing the task sequence includes identifying an existing software feature, where the functionality is in the plurality of features, installing new software files associated with the feature, applying a corresponding settings setting to the installed files, so that the feature is accessible on the new software, forward requests to access the feature received from at least one computing device to the new software, and remove any existing software files associated with the feature.
In some examples, determining the migration plan further comprises classifying each respective functionality into the plurality of functionalities based on the likelihood that the respective functionality is accessible during migration and scheduling the activities of the sequence of activities in accordance with the classification, where features are more likely to be programmed to install before features are less likely to be installed.
In some examples, establishing the migration plan further includes classifying each respective functionality into the plurality of functionalities based on the likelihood that the respective functionality is accessible during migration and scheduling the activities of the sequence of activities in accordance with the classification, where features that are less likely to be installed before features are more likely to be installed.
In some examples, identifying existing software settings further comprises identifying at least one setting manually adjusted by a user of existing software of at least one computing device.
In some examples, identifying existing software settings further comprises identifying at least one setting for migration after establishing that at least one setting has been left unchanged by a user of existing software for more than a time limit.
In some examples, identifying existing software settings further includes not selecting at least one setting for migration after establishing that at least one setting does not optimize quality of service when accessing at least one feature of the plurality of features on the new software.
In some examples, existing software and new software are antivirus software and the quality of service is measured on the basis of any combination of: (1) a time required to scan at least one computer device, (2) a quantity of objects scanned on at least one computer device, (3) a number of malicious objects found, (4) a quantity of infected directories despite an active firewall, and (5) an amount of time to download new virus definitions.
It should be noted that the methods described above can be implemented in a system comprising a hardware processor. Alternatively, the methods can be implemented using computer instructions from a non-transient computer medium.
The simplified summary of the above exemplary embodiments serves to enable a basic understanding of the present disclosure. This summary is not an exhaustive summary of all contemplated accomplishments and is neither intended to identify key or critical elements of all accomplishments nor to outline the scope of some or all of the accomplishments of this disclosure. Its sole purpose is to present one or more embodiments in simplified form as a prelude to the more detailed description of the following disclosure. To complete the foregoing, one or more embodiments of the present disclosure include the functionalities described and highlighted in an exemplary manner in the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and form part of this specification, illustrate one or more exemplary embodiments of the present disclosure and, together with the detailed description, serve to explain the principles and implementations thereof.
FIG.1 is a block diagram showing a system for seamless migration from existing software to new software.
FIG.2 is a block diagram showing a system for extracting and converting settings from existing software to new software.
FIG.3 is a block diagram showing a system for generating a migration plan.
FIG. 4 is a block diagram showing a system for executing the migration plan.
Fig.5 shows a flowchart of a method for seamless migration from existing software to new software.
FIG. 6 presents an example of a generic computer system on which embodiments of the present disclosure can be implemented.
DETAILED DESCRIPTION
Exemplary embodiments of the invention in the context of a system and method for seamless migration from existing software to new software are described herein. Those of ordinary skill in the art will realize that the following description is purely illustrative and is not intended to be limiting in any way. Other realizations will immediately reveal themselves to those skilled in the art who will make use of this disclosure. Reference will now be made in detail to the implementations of the exemplary embodiments as illustrated in the accompanying drawings. The same reference indicators will be used, as far as possible, in all drawings and in the following description to refer to the same or similar elements.
FIG.1 is a block diagram showing a system 100 for seamless migration from existing software to new software. In system 100, the MSP 101 represents a service provider for a plurality of computer devices (for example, 108a, 108b, 108n, etc.). In the present disclosure, the data exchanged between the migration server 106 and the MSP 101 can be understood as data exchanged between the server 106 and a device used by a member of the MSP 101 (e.g., an administrator).
The migration server 106 comprises the migration module 114 which is configured to manage a seamless migration of the software over the plurality of computing devices. Each computing device 108 includes the migration agent 114, which can be a client application that communicates with the migration module 114 on the migration server 106. In some examples, the migration agent 114 is a thin client and the module 114 is a thick client. The communication between the MSP 101, the migration server 106 and the plurality of computer devices 108 can be performed on the same network. The network can be a local computer network (LAN) or a wide range computer network (WAN) such as the Internet. In some examples, each of the computing devices is independent and is not associated with the MSP 101. Similarly, the software to be installed on a particular computing device (e.g. 108a) is independent of the MSP 101 or any other computing device depicted (e.g. , 108b, 108n, etc.)
In one example, the migration module 114 may receive the command to migrate from existing software to new software on at least one computing device. In some examples, the command may come from the MSP 101, while in other examples, the command may come from one of the computer devices 108. Note that in FIG. 1 each device is labeled with a number, followed by a letter (for example, "a," "b," "n", etc.). For simplicity, only one letter is shown. Letters are used to identify and group the components of a particular computing device. For example, all labels ending in "a" such as migration agent 114a, settings 112a, software 110a, etc., represent components and software on the computing device 108a. In some examples, the command received from the migration module 114 may also indicate which computing devices need to be updated with the new software 104. For example, the MSP 101 may want only some selected computing devices to be updated in the new software 104.
In some examples, after receiving the command, the migration module 114 can determine whether the new software 104 can be installed on an identified computer device. For example, some computing devices may be incompatible with new software 104 due to outdated operating systems and / or hardware. After determining that an identified computing device is incompatible with the new software 104, the migration module 114 can transmit an error message to report the incompatibility problem to the MSP 101.
The software 110 and the new software 104 may be similar computer programs that share a plurality of functionalities. For example, the software 110 may be one antivirus program and the new software 104 may be a different antivirus program. Features such as periodic scanning, virus definitions, and removal / quarantine methods can be shared among many other features. The MSP 101 or any of the computing devices may choose to replace the software 110 with the new software 104. This disclosure describes systems and methods for replacing the software 110 with the new software 104 while retaining as many desired software settings as possible 112 110 and ensuring that the QoS (quality of service) does not decrease during replacement. This specific software replacement / upgrade is referred to as a seamless migration.
Each software 110 is configured with settings 112 which are identified for migration (i.e., application to new software 104). Note that because the software 110a is used differently from the software 110b (for example, because the respective computing devices may have different users or different types of devices), different settings are applied to the new software 104 depending on which device new software 104 is applied.
After receiving the command, the migration module 114 retrieves the information on the activity of using the software 110 from the computing device 108 and identifies the settings 112 of the software 110 which are to migrate. This is further shown in FIGS. 2 and 3.
FIG.2 is a block diagram showing a system 200 for extracting and converting settings from existing software to new software. In the example where software 110 and new software 104 are both anti-virus applications, the settings that need to migrate from existing software to new software may include, but are not limited to, (1) a virus scanner, (2) actions to be execute for all types of viruses and malware, (3) exception directories that must not be scanned, and (4) authorized users. As shown in FIG. 2, the settings 112 are extracted by the migration agents on each computing device and supplied to the migration module 114. To simplify, the following example focuses exclusively on the settings 112a, which come from the computing device 108a. Settings 112a are identified by Migration Agent 114a as the settings to import (where possible). The settings 112a comprise a plurality of individual settings / configurations listed in FIG. 2 (for example, setting 112a-1, 112a-2, 112a-3, etc.).
Since not all the settings of the software 110 may be compatible with the new software 104 and not all the settings of the software 110 are particularly desired by the user, the migration module 114 filters the settings to be imported. For example, the migration module 114 may analyze the command / configuration registers of the software 110a to identify at least one setting manually adjusted by a user of the existing software 110a of the computer device 108a. If a user manually selects a setting, the user is more likely to want to see this setting in the new 104 software. For example, if the user has changed the frequency of virus scans from daily to weekly, it is possible that the user does not want frequent scans. This gives the migration module 114 two pieces of information: what the user wants and what the user doesn't want. In this case, when the new software 104 is installed, the migration module 114 will not set the "daily" frequency for the new software 104. Similarly, since the user has manually selected the weekly option, the migration module 114 will set the "weekly" scan frequency based on the user's previous selection.
In some examples, the migration module 114 can identify at least one setting for migration after establishing that at least one software setting 110 has been changed within a time limit (e.g. within the last month ). Another indication that a user prefers a particular setting is if the setting has recently been changed. This change does not have to come directly from the user. However, as the change was made recently, the change is likely to be part of a performance-enhancing update.
In some examples, the migration module 114 can identify at least one setting for migration after establishing that at least one setting has not been changed by an existing software user for more than a time limit (e.g. , one year). For example, if a setting was changed by a user and then remained unchanged for a long period of time, it is likely that the user has become accustomed to it and prefers the outcome (for example, change so that a scan starts at a certain time and keep that change for a long time because it is convenient for the user).
After identifying the settings to be migrated from the software 110a to the new software 104, the migration module 114 can begin to convert the identified settings into corresponding settings in the new software 104. The migration module 114 can rely on internal data containing information on metadata related to new software 104 and software 110a. FIG. 2 shows, for example, the migration database 202. The migration database 202 includes a list of settings and possible configurations for each software. Migration database 202 can include additional information for each software, such as product ID, manufacturer name, product name, language type, product regular expression (regex), regular expression ( regex) of the manufacturer, etc. The entries comprising the settings can be pre-mapped so that the Migration Module 114 can quickly search for matching settings on two or more software applications.
For example, setting 112a-1 of setting 112a may indicate a period of time in which virus scans can take place. Migration module 114 can then identify a similar time period setting in setting 204a-1. Similarly, the migration module 114 can match the settings between the software 110 and the new software 104 for each computing device. The migration module 114 then generates the settings 204, which consist of a list of settings that coincide with the software settings 110 identified for migration. The migration module 114 transmits each setting 204 to the migration agent 114 of the respective computing device.
FIG.3 is a block diagram showing a system 300 for generating a migration plan. Migration module 114 can receive usage activity information from any computing device. This information may include a log of actions taken on the software 110. The log may include, for example, "manual scan started by [DATE, TIME]," "scan stopped at [DATE, TIME]," "automatically scanned new directory [ NAME] in [DATE, TIME], “etc. Based on usage 302, the migration module 114 establishes a migration plan indicative of a sequence of tasks for installing new software 104 and removing existing software 110 such that an associated quality of service (QoS) access to the plurality of functionalities on at least one IT device does not fall below a QoS threshold (quality of service).
In some examples, to create the migration plan, the migration module 114 can classify each respective functionality in the plurality of functionalities shared by the two software based on a probability that the respective functionality is accessible during the migration. The migration module 114 can then schedule activities of the sequence of activities in accordance with the classification. In some examples, features are more likely to be programmed to be installed before features are less likely to be installed. In other examples, features that are less likely to be installed are programmed to be installed before features are more likely.
In some examples, the migration module 114 may comprise the QoS (quality of service) analyzer 304 and the machine learning module 306. The QoS (quality of service) analyzer 304 can be used to assign the QoS (quality of service) values at various times, as indicated in the usage activity information, in which a particular feature was accessed. QoS (quality of service) can be measured in different ways based on the time it takes to complete an action in the software. For example, if the software is antivirus software, the QoS (quality of service) can be based on the time it takes to complete a virus scan. A user may have started a virus scan in time t1 and the scan may have completed in an hour. However, if the user performed another scan of the same directories in time t2 and the scan took five hours, the QoS (quality of service) of the last scan is lower than the QoS (quality of service) of the first scan. The same is true if the software is, for example, a streaming application and downloading a song that normally takes 10 seconds takes 1 minute instead. For antivirus software, in some cases the QoS (quality of service) can be measured based on the number of malicious objects found, based on the amount of infected directories under the control of an active firewall, based on the amount of time it takes to download new virus definitions, etc. In general, for any type of software, QoS (quality of service) factors depend on CPU usage, network access speed, and how much the user is or is subject to malicious attacks (e.g. security / bug), the software / hardware capabilities of a particular computing device, the frequency of software crashes, the frequency of hardware failures, etc.
In particular, the migration module 114 attempts to avoid a deterioration of the QoS (quality of service) while the migration is in progress. Using the ML 306 module, the Migration Module 114 can identify a time to perform the migration. ML 306 module can receive information about user usage activity and QoS (quality of service) values generated by QoS (quality of service) analyzer 304 to predict when user activity will be minimized so that a migration can be performed. For example, the ML 306 module can determine that user activity will decrease between 8 PM and 10 PM (i.e. CPU consumption on a user's computing device will be less than 30% when in average of 50%). It is possible for the user to scan only a selected number of directories during this period. If QoS (Quality of Service) is measured by the time it takes to perform a scan, historically the scan completion time can be 2 hours. By installing the new 104 software, CPU usage can increase and slow down the scan to 2.5 hours. This represents a 25% reduction in QoS (quality of service) (i.e. the new QoS value is 75%). Migration module 114 can compare this value with a QoS (quality of service) threshold value such as 60% and after determining that the QoS (quality of service) value will be greater than the QoS (quality of service) threshold value , the migration module 114 can schedule the migration during that time period.
As shown in the previous example, the QoS (quality of service) threshold value represents a value, as a percentage, which refers to the QoS (quality of service) value. If the QoS (quality of service) value is measured in scan time, the QoS (quality of service) threshold value will also be a time value representing a maximum scan time. If the QoS (Quality of Service) value is measured in the number of objects scanned within a time period, the QoS (Quality of Service) threshold represents a minimum number of objects to be scanned within that time period.
[0042] The migration module 114 then generates a unique migration plan 308 for each computer device (depending on the settings to be imported and the information on the usage activity). For example, Migration Module 114 can pass Migration Plan 308a to Migration Agent 114a and Migration Plan 308b to Migration Agent 114b.
[0043] Note that when selecting the settings to import into the new software 104, the migration module 114 cannot select a setting for migration after establishing that a setting does not optimize QoS (quality of service) when you access at least one feature of the plurality of features on the new software (based on the recommendations of the developer and / or the instructions of the MSP). For example, some settings in the new software 104 can naturally produce better application performance (for example, faster scan times and updates). For this reason, it is not necessary to import the old settings. These settings may be based on new features not present in existing software. For example, new antivirus software may use a different approach to scanning the computing device that enables faster scans and requires more frequent scans. This way, if the user originally set the biweekly scan frequency in existing software and a manufacturer / developer recommends weekly scans using the new software, the frequency setting will not be performed.
In some examples, the migration module 114 may present the migration plan 308 to an administrator of at least one IT device and / or MSP 101. Before executing the migration plan or before sending the migration plan to the migration agent 114, the migration module 114 may require approval of the migration plan 308.
FIG. 4 is a block diagram showing a system 400 for executing the migration plan. In some examples, after receiving an approval of the migration plan from the administrator, the migration module 114 can perform the sequence of tasks indicated in the migration plan 308 by installing the new software 104, implementing the corresponding settings 204 and removing existing software 110. As shown in FIG. 4, each computing device is equipped with a respective new software 104, settings 204, and no software 110.
In some examples, the migration agent 114 may receive the migration plan 308 and execute it locally. The sequence of tasks can indicate when and in what order to perform the 308 migration plan tasks. Each task can represent a particular command. An example of a sequence is as follows: 1. find regkey [NAME] 2. parse config [-type xml | json | yaml] [—path PATH_TO_CONFIG_FILE] 3. run cmd [COMMAND] 4. start proc [PATH_TO_EXE_FILE] 5. force remove [PATH_TO_APP] 6. install New Software [CONFIG_FILE] 7. send restcmd [HOST_ADDRESS]
[0047] In some examples, installation and removal can occur at the same time. For example, the migration agent 114 may identify an existing software feature, where the functionality is in the plurality of features. Migration Agent 114 can install new software files associated with the feature and apply a corresponding settings setting to the installed file so that the feature is accessible on the new software. For example, the feature may involve scanning for a particular virus. Since the new functionality is implemented on the computing device through the new software 104, if the user attempts to access the functionality on the software 110, the migration agent 114 can forward the requests to access the functionality received from at least one computing device to the new 104 software. After installing the new feature and applying the corresponding setting, the Migration Agent 114 can remove the existing software 110 files associated with the feature.
[0048] In some examples, an MSP 101 can send a new software migration command 104 to the plurality of computing devices 108. Suppose that the computing device works with the Windows operating system. If a computing device is not password protected, the Migration Agent 114 can open the Registry Editor to uninstall the software 110, go toHKEY_LOCAL_MACH INE SOFTWARE Microsoft Windows CurrentVersion Uninstall , find an uninstall key and start the uninstall (for example, msiexec / X {product uninstall key}).
[0049] In case the computing device is password protected, to uninstall the software 110 the migration module 114 can rely on REST API to "get" the list of all host names of the computing devices 108, create a group unprotected, enter all 108 computing devices into the group and run the passwordless uninstall on each computing device. In this example, the REST API methods include "Get", "Put", "Post" and "Delete".
Seamless migration is applicable in any update setup because it allows users to continue using applications and services during an update without interrupting those applications and services. For example, a user can start using an existing software feature such as a virus scan and complete the use of the feature in new software. Suppose a directory with a thousand files needs to be scanned. Using the systems and methods of this disclosure, the directory can be scanned using existing antivirus software. New antivirus software may be installed midway through the scan. The file scanning functionality for viruses can then be half taken over by the new software and completed by the new software. Once the new software is fully installed, the existing software can be removed. Migration module 114 can determine that the file scanning functionality (i.e., the functionality currently in use) requires running a certain set of installation files (for example, a communication module that communicates with a remote database of virus definition, a user interface, a file parser, etc.) and install those files immediately. The migration agent 114a can subsequently redirect all requests associated with that functionality (for example, a request to scan an object in the directory) to the new software.
In order to ensure that this installation and execution are „seamless“, the migration module 114 identifies at least one QoS (quality of service) factor with which to compare performance. For example, the QoS (quality of service) factor may be a network bandwidth consumption of a computing device specifically assigned to the migration. Suppose the QoS (Quality of Service) threshold value for network bandwidth consumption is 5 Mbps. Migration Module 114 will attempt to install new software and verify that network bandwidth consumption does not exceed 5 Mbps. Existing software is also running and consuming bandwidth, consumption by existing software is also included in the QoS (quality of service) determination. For example, existing software might use 2 Mbps to load file signatures for comparison with virus definitions. This leaves 3 Mbps to download the installation files for the new software.
Furthermore, another QoS (quality of service) factor can be CPU consumption (assigned specifically to migration services or for the computing device as a whole). For example, while the scan functionality is used in existing software and new software is downloaded and installed, CPU consumption can be as high as 50%. If the CPU consumption threshold is 45%, the Migration Engine 114 can slow down the installation or scan to keep the CPU consumption below the threshold.
Another factor of QoS (quality of service) may be the use of storage. For example, the threshold memory usage for a computing device can be 50% of the total space. If the installation of new software causes 51% memory usage (ie, above the threshold), the Migration Module 114 can identify the existing software features that are shared with the new software. Subsequently, the Migration Module 114 can install those features in the new software at times and, at the same time, remove the same features from the existing software to maintain memory usage. In some examples, the Migration Module 114 can consider multiple QoS (quality of service) factors at the same time to ensure that the migration is seamless and with stable usage.
Fig.5 shows a flowchart of method 500 for seamless migration from existing software to new software. At 502, the migration module 114 receives a command (for example, via the migration agent 114a installed on the computing device 108a) to migrate from existing software (for example, software 110a) to new software (for example, the new software 104) on at least one computer device (for example, the computer device 108a), in which the existing software and the new software share a plurality of functionalities (for example, both software are antivirus programs).
At 504, the migration module 114 retrieves information about the usage activity (e.g., usage 302a) of the existing software from at least one computing device. At 506, the migration module 114 identifies the settings (for example, settings 112a) of the existing software that need to be migrated. At 508, Migration Engine 114 converts, based on an internal database with metadata information from the new software (for example, Migration Database 202), the settings into corresponding settings in the new software (for example, 204a settings) .
[0056] At 510, the migration module 114 establishes, based on the information on the usage activity, a migration plan (e.g. migration plan 308a) indicative of a sequence of activities for installing the new software and the removal of existing software in such a way that a quality of service associated with access to the plurality of functionalities on at least one computer device does not fall below a quality of service threshold. At 512, the migration module 114 sequences of tasks by installing new software, implementing corresponding settings, and removing existing software.
FIG. 6 is a block diagram showing a computer system 20 in which exemplary embodiments of the systems and methods for seamless migration from existing software to new software can be implemented. The computer system 20 can be in the form of multiple computing devices or in the form of a single computing device, for example a desktop computer, notebook, laptop, mobile computing device, smartphone, tablet, server, computer central, an integrated device and other forms of computing devices.
[0058] As shown, the computer system 20 comprises a central processing unit (CPU) 21, a system memory 22 and a system bus 23 which connects the various components of the system, including the memory associated with the processing unit central 21. The system bus 23 can comprise a bus memory or a bus memory controller, a peripheral bus and a local bus capable of interacting with any other bus architecture. Bus examples may include PCI, ISA, PCI-Express, HyperTransport ™, InfiniBand ™, Serial ATA, I <2> C, and other suitable interconnects. The central processing unit 21 (also called processor) can comprise a single or a series of processors with one or more cores. Processor 21 may execute one or more executable computer codes that implement the techniques of the present disclosure. For example, the processor 21 can execute any one of the commands / steps of FIGS. 1-5. The system memory 22 can be any memory for storing the data used herein and / or computer programs executable by the processor 21. The system memory 22 can include a volatile memory such as a random access memory (RAM) 25 and a non-volatile memory. volatile such as read-only memory (ROM) 24, flash memory, etc. or a combination of these. The basic input / output system (BIOS) 26 can store the basic procedures for transferring information between elements of the computer system 20, such as those when loading the operating system with the use of ROM 24.
The computer system 20 may comprise one or more storage devices such as one or more removable storage devices 27, one or more non-removable storage devices 28, or a combination thereof. One or more removable storage devices 27 and non-removable storage devices 28 are connected to the system bus 23 via a storage interface 32. In one example, storage devices and corresponding computer storage media are power-independent modules for storage of computer system instructions, data structures, program modules and other data 20. System memory 22, removable storage devices 27, and non-removable storage devices 28 can use a variety of computer storage media. Examples of computer storage media include onboard memory such as cache, SRAM, DRAM, zero capacitor RAM, dual transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technologies such as solid state drives (SSDs) or flash drives; storage on magnetic cassettes, magnetic tapes and magnetic disks such as, for example, hard disk drives or floppy disks; optical storage such as, for example, in compact disks (CD-ROMs) or versatile digital discs (DVDs); and any other medium which can be used to store the desired data and which can be accessed by the computer system 20.
The system memory 22, the removable storage devices 27 and the non-removable storage devices 28 of the computer system 20 can be used to store an operating system 35, additional program applications 37, other program modules 38 and data program 39. The computer system 20 may include a peripheral interface 46 for communicating data from input devices 40, such as keyboard, mouse, stylus, game controller, voice command device, touch device or other peripheral device , as a printer or scanner through one or more I / O ports, such as a serial port, parallel port, universal serial bus (USB), or other peripheral interface. A display device 47, such as one or more integrated monitors, projectors or displays, may also be connected to the system bus 23 through an output interface 48, such as a video adapter. In addition to the display devices 47, the computer system 20 can be equipped with other peripheral output devices (not shown), such as speakers and other audiovisual devices.
The computer system 20 may operate in a network environment using a network connection to one or more remote computers 49. The remote computer (s) 49 may consist of local workstations or servers comprising most or all the elements mentioned above in the description of the nature of a computer system 20. Other devices may also be present in the computer network, such as, but not limited to, routers, network stations, peer devices or other network nodes. The computer system 20 may comprise one or more network interfaces 51 or network adapters for communicating with remote computers 49 through one or more networks, such as a local computer network (LAN) 50, a wide-range computer network (WAN), an intranet and the Internet. Examples of network interface 51 may include an Ethernet interface, a Frame Relay interface, a SONET interface, and wireless interfaces.
Embodiments of the present disclosure may be a system, method and / or product of a computer program. The computer program product may include a computer storage medium (or media) with instructions for computer programs for a processor to perform embodiments of this disclosure.
The computer storage medium may be a tangible device capable of storing and storing the program code in the form of instructions or data structures accessible by a processor of a computer device, such as the computer system 20. The storage medium computer may be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any appropriate combination of these. By way of example, this computer storage medium may comprise a random access memory (RAM), a read only memory (ROM), an EEPROM, a read only memory of a portable compact disc (CD-ROM), a versatile digital disk (DVD), a flash memory, a hard disk, a portable disk, a memory stick, a floppy disk, or even a mechanically encoded device such as punch cards or structures embossed in a groove with recorded instructions. As used herein, a computer storage medium is not intended to be transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or transmission media, or electrical signals transmitted through a wire.
The computer program instructions described herein can be downloaded to the respective computer devices from a computer storage medium or to an external computer or external storage device via a network, e.g. the Internet, a local network, a network wide range and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, computer gateways and / or edge servers. A network interface of each computer device receives computer program instructions from the network and forwards computer program instructions for storage on a computer storage medium within the respective computer device.
Computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction sets (ISA), machine instructions, machine dependent instructions, microcodes, firmware instructions, status setting data, or source codes or object codes written in any combination of one or more programming languages, including an object-oriented programming language and conventional procedural programming languages. The instructions of computer programs can be executed entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a LAN or WAN, or the connection can be made to an external computer (for example, through the Internet). In some embodiments, electronic circuits that include, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) can execute the instructions of computer programs using the status information of the instructions. computer programs to customize electronic circuits, in order to carry out realizations of this disclosure.
In various examples, the systems and methods described in the present disclosure can be treated in terms of modules. The term "module" used here refers to an actual device, component or arrangement of components, implemented via hardware, such as via an application specific integrated circuit (ASIC) or FPGA, or as a combination of hardware and software, such as through a microprocessor system and a set of instructions to implement the functionality of the module, which (while running) transforms the microprocessor system into a special device. A module can also be implemented as a combination of the two, with some functions facilitated only by hardware and other functions facilitated by a combination of hardware and software. In some implementations, at least part, and in some cases all, of a module can run on the processor of a computer system. Consequently, each module can be made in a variety of suitable configurations and need not be limited to a particular implementation exemplified herein.
[0067] For the sake of clarity, not all the routine functionalities of the embodiments are reported here. It would be desirable that in the development of any actual implementation of this disclosure numerous implementation-specific decisions were made in order to achieve the specific goals of the developer, and these specific goals will vary for different implementations and different developers. It is understood that such a development effort could be complex and time-consuming, but it would still be an easy feat for those with ordinary skill in the art who take advantage of this disclosure.
Furthermore, it is understood that the phraseology or terminology used herein is for the purpose of description and not of restriction, so that the terminology or phraseology of this specification is to be interpreted by those skilled in the art in the light of the teachings and of the guidelines presented here, in combination with the knowledge of those proficient in the relevant art or arts. Further, no term in the specification or claims shall be given an uncommon or special meaning, unless explicitly stated as such.
The various examples illustrated herein include known present and future equivalents of the known modules to which reference is made for illustrative purposes. Furthermore, while the embodiments and applications have been shown and described, it is evident to those skilled in the art and availing themselves of the present disclosure that many more modifications than those mentioned above are possible without departing from the concepts of the invention set forth herein.
权利要求:
Claims (15)
[1]
1. A method for seamless migration from existing software to new software, where the method includes:receiving a command to migrate from existing software to new software on at least one computer device, in which the existing software and the new software share a plurality of functionalities;after receiving the command:retrieve information on the activity of use of the existing software from at least one IT device;identify existing software settings that need to migrate;convert, based on an internal database containing information about the metadata of the new software, the settings of the existing software into the corresponding settings of the new software;establish, on the basis of the information on the usage activity, a migration plan indicative of a sequence of activities for the installation of the new software and the removal of the existing software in such a way that a quality of service associated with access to the plurality of functionality on at least one IT device does not fall below a quality of service threshold value; Andrun the task sequence by installing new software, implementing corresponding settings, and removing existing software.
[2]
The method according to claim 1, further comprising:submit the migration plan to an administrator of at least one computing device, where the sequence of tasks is performed after receiving the approval of the migration plan from the administrator.
[3]
The method according to claim 1, wherein the existing software and the new software are antivirus software, wherein identifying the settings to migrate from the existing software further comprises:identify at least one of: (1) a virus scanner, (2) actions to be performed for each type of virus and malware, (3) directory of exceptions that should not be scanned, (4) authorized users.
[4]
The method according to claim 1, wherein performing the task sequence comprises:identify a functionality of the existing software, in which the functionality is in the plurality of functionalities;install the new software files associated with the feature;apply a setting of the corresponding settings to the installed files, so that the functionality is accessible on the new software;forward to the new software the requests for access to the functionality received from at least one IT device; Andremove existing software files associated with the feature.
[5]
The method according to claim 4, wherein establishing the migration plan further comprises:classify each respective functionality in the plurality of functionalities based on a probability that the respective functionality is accessible during the migration;Schedule the tasks of the task sequence in accordance with the classification, where features are most likely scheduled to be installed before features are least likely.
[6]
The method according to claim 4, wherein establishing the migration plan further comprises:classify each respective functionality in the plurality of functionalities based on a probability that the respective functionality is accessible during the migration;schedule the tasks of the task sequence in accordance with the classification, where features are less likely to be installed before features are more likely.
[7]
The method according to claim 1, wherein identifying existing software settings further comprises identifying at least one manually adjusted setting by an existing software user of at least one computer device.
[8]
The method according to claim 1 wherein identifying existing software settings further comprises identifying at least one setting for migration after establishing that at least one setting has been left unchanged by a user of existing software for more than a cut-off period of time.
[9]
The method according to claim 1, wherein identifying existing software settings further comprises not selecting at least one setting for migration after establishing that at least one setting does not optimize the quality of service when accessing at least one feature of the plurality of features on the new software.
[10]
The method according to claim 1, where the existing software and the new software are antivirus software and where the quality of service is measured on the basis of any combination of:(1) a time required to scan at least one computing device,(2) a quantity of objects scanned on at least one computer device,(3) a number of malicious objects found,(4) a number of infected directories despite an active firewall, e(5) an amount of time to download new virus definitions.
[11]
11. A system for seamless migration from existing software to new software, where the system includes:a hardware processor configured to:receiving a command to migrate from existing software to new software on at least one computer device, in which the existing software and the new software share a plurality of functionalities;after receiving the command:retrieve information on the activity of use of the existing software from at least one IT device;identify settings that need to migrate from existing software;convert the settings of the existing software to the corresponding settings of the new software on the basis of an internal database with the metadata information of the new software;establish, on the basis of the information on the usage activity, a migration plan indicative of a sequence of activities for the installation of the new software and the removal of the existing software in such a way that a quality of service associated with access to the plurality of functionality on at least one IT device does not fall below a quality of service threshold value; Andrun the task sequence by installing new software, implementing corresponding settings, and removing existing software.
[12]
The system according to claim 11, wherein the hardware processor is further configured to:submit the migration plan to an administrator of at least one computing device, where the sequence of tasks is performed after receiving the approval of the migration plan from the administrator.
[13]
The system according to claim 11, in which the existing software and the new software are antivirus software, in which the hardware processor is configured to identify the settings that are to be migrated from the existing software:identifying at least one of: (1) a virus scanner, (2) actions to be performed for each type of virus and malware, (3) directory of exceptions that should not be scanned, (4) authorized users.
[14]
The system according to claim 11, wherein the hardware processor is configured to perform the task sequence:identifying a functionality of the existing software, in which the functionality is in the plurality of functionalities;installing the new software files associated with the feature;applying a corresponding settings setting to the installed files, so that the functionality is accessible on new software;forwarding to the new software the requests for access to the functionality received from at least one IT device; Andby removing existing software files associated with the feature.
[15]
The system according to claim 14, wherein the hardware processor is configured to establish the migration plan:classifying each respective functionality in the plurality of functionalities based on a probability that the respective functionality is accessible during the migration; Andscheduling the tasks of the task sequence in accordance with the classification, where features are most likely scheduled to be installed before features are least likely; orscheduling the tasks of the task sequence in accordance with the classification, where features are less likely to be installed before features are more likely.
类似技术:
公开号 | 公开日 | 专利标题
US9760395B2|2017-09-12|Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates
US8938523B2|2015-01-20|System and method for deploying and maintaining software applications
US9047107B2|2015-06-02|Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment
US9122531B2|2015-09-01|Resource configuration for a network data processing system
US8645672B2|2014-02-04|Configuring a computer system for a software package installation
US8412797B2|2013-04-02|Platform for development and deployment of system administration solutions
US8943496B2|2015-01-27|Providing a hosted appliance and migrating the appliance to an on-premise environment
US11176331B2|2021-11-16|Contextual communication and service interface
US9753758B1|2017-09-05|Building of virtual servers in a cloud via non-structured strings
Smith2017|Docker Orchestration
US9792146B2|2017-10-17|Iterative anti-collocation of network resources using prioritized graph coloring
Kirschnick et al.2012|Towards an architecture for deploying elastic services in the cloud
US10642592B2|2020-05-05|Automated configuration profile generation and management
Hane2015|Build your own PaaS with Docker
Saito et al.2018|Kubernetes Cookbook: Practical solutions to container orchestration
US8458686B2|2013-06-04|Guaranteeing authentic firmware for purposes of cloning
CH717528A2|2021-12-15|Systems and methods for seamless software migration.
CN109687987A|2019-04-26|A kind of cloud platform dispositions method, device, electronic equipment and readable storage medium storing program for executing
US20200241868A1|2020-07-30|Operating system update management
Tulloch et al.2009|Windows 7 resource kit
US11119750B2|2021-09-14|Decentralized offline program updating
US11093260B2|2021-08-17|Device provisioning with manufacturer boot environment
US10810105B2|2020-10-20|Logging stored information for identifying a fix for and/or a cause of an error condition
US8788681B1|2014-07-22|Method and apparatus for autonomously managing a computer resource using a security certificate
WO2022015772A1|2022-01-20|Configuration files for multiple devices
同族专利:
公开号 | 公开日
EP3923134A1|2021-12-15|
US20210382705A1|2021-12-09|
JP2022002086A|2022-01-06|
EP3923134A4|2021-12-15|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US8370825B2|2003-10-22|2013-02-05|Hewlett-Packard Development Company, L.P.|Program-update prioritization according to program-usage tracking|
US8321858B1|2003-12-31|2012-11-27|Google Inc.|Systems and methods for providing software updates|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
US202063035932P| true| 2020-06-08|2020-06-08|
US17/323,075|US20210382705A1|2020-06-08|2021-05-18|Systems and methods for seamless software migration|
[返回顶部]